home *** CD-ROM | disk | FTP | other *** search
/ Technotools / Technotools (Chestnut CD-ROM)(1993).ISO / lang_c / cgraphix / drawstra.c < prev    next >
Text File  |  1986-05-12  |  917b  |  43 lines

  1. /* «RM120»«PL99999»«TS4,8,12,16,20,24,28,32,36,40,44,48,52,56,60,64,68,72,76» */
  2. #include    <stdio.h>
  3. #define    EXTERN    extern
  4. #include    <typedef.h>
  5.  
  6.  
  7. void DrawStraight(x1,x2,y)      /* Draw a horizontal line from x1,y to x2,y    */
  8. int        x1, x2, y;
  9. {
  10.     int        i, x, DirectModeLoc;
  11.  
  12.     if (!((x1 < 0) || (x1 > 8 * XMaxGlb + 7)) &&
  13.         !((x2 < 0) || (x2 > 8 * XMaxGlb + 7)) &&
  14.         ((y >= 0) && (y <= YMaxGlb))) {
  15.         DirectModeLoc = DirectModeGlb;
  16.         DirectModeGlb = TRUE;
  17.         if (x1 > x2) {
  18.             x = x1;
  19.             x1 = x2;
  20.             x2 = x;
  21.         }
  22.         if (x2 - x1 < 16) {
  23.             for (x = x1; x <= x2; x++) {
  24.                 DP(x,y);
  25.             }
  26.         }
  27.         else {
  28.             x1 += 8;
  29.             for (i = (x1-8); i <=  (x1 & -8); i++) {
  30.                 DP(i,y);
  31.             }
  32.             for (i = (x2 & -8); i <= x2; i++) {
  33.                 DP(i,y);
  34.             }
  35.                filblock(BaseAddress(y) + (x1 >> 3), GrafBase,
  36.                 ColorGlb, (x2 >> 3)-(x1 >> 3));
  37.         }
  38.     DirectModeGlb = DirectModeLoc;
  39.     }
  40. }
  41.  
  42.  
  43.